﻿// --------------------------------------------------------------------------------------------------------------------
// <copyright file="IMessenger.cs" company="JDML Consulting Ltd.">
//   Copyright 2011 Photon Project - http://photon.codeplex.com
// </copyright>
// <summary>
//   Defines the SubscriptionOptions type.
// </summary>
// --------------------------------------------------------------------------------------------------------------------

using System;

namespace Photon
{
    [Flags]
    public enum SubscriptionOptions
    {
        /// <summary>
        /// No options (Default)
        /// </summary>
        None = 0,
        /// <summary>
        /// Specifies that the subscriber should recieve polymorphic messages.
        /// </summary>
        Polymorphic = 1,
        /// <summary>
        /// Specifies that the subscriber reference should be kept alive.
        /// </summary>
        KeepSubscriberReferenceAlive = 2,
        /// <summary>
        /// Specifies that the filter reference should be kept alive.
        /// </summary>
        KeepFilterReferenceAlive = 4,
        /// <summary>
        /// Specifies that both subscriber and filter references should be kept alive.
        /// </summary>
        KeepReferencesAlive = KeepSubscriberReferenceAlive | KeepFilterReferenceAlive
    }   
}
